Forwarded from Proglib.academy | IT-курсы
This media is not supported in your browser
VIEW IN TELEGRAM
Пока вы просто вызываете hashlib.sha256(), есть сайт, который показывает, что реально происходит под капотом.
На сайте визуальный разбор алгоритма SHA-256
• как разбиваются данные на блоки
• как добавляется паддинг
• какие логические операции гоняются внутри
• и как из строки получается тот самый хеш
Да, это просто сайт. Но он делает то, что учебники игнорируют — показывает весь процесс хеширования глазами машины.
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😈 Как правильно обрабатывать ошибки?
Как правило разработчики делятся на два типа, те кто поддерживают исключения и те кто за ручную обработку ошибок.
🎯 Exception team:
• Чистый код без проверок на каждом шаге
• RAII + exceptions = идеальное сочетание
• Стандартный C++ подход
• Exception safety гарантии
📋 Error codes army:
• Предсказуемая производительность
• Нет hidden control flow
• Embedded-friendly
•
GOOGLE STYLE: Exceptions запрещены, только error codes!
РЕАЛЬНОСТЬ: В высоко нагруженных приложениях exceptions = смерть, в обычном коде — удобство.
А ты из какого лагеря? И сколько раз ловил
Библиотека C/C++ разработчика #междусобойчик
Как правило разработчики делятся на два типа, те кто поддерживают исключения и те кто за ручную обработку ошибок.
🎯 Exception team:
• Чистый код без проверок на каждом шаге
• RAII + exceptions = идеальное сочетание
• Стандартный C++ подход
• Exception safety гарантии
📋 Error codes army:
• Предсказуемая производительность
• Нет hidden control flow
• Embedded-friendly
•
std::expected
в C++23 спасет мирGOOGLE STYLE: Exceptions запрещены, только error codes!
РЕАЛЬНОСТЬ: В высоко нагруженных приложениях exceptions = смерть, в обычном коде — удобство.
А ты из какого лагеря? И сколько раз ловил
std::bad_alloc
в production?Библиотека C/C++ разработчика #междусобойчик
📰 Свеженькое из мира C++
Недельный дайджест новостей о разных аспектах программирования и интересных проектах в мире C++.
🥳 Интересное:
• Язык программирования будущего
• Open Source и C++: делай что должен и свершится, чему суждено
• Microsoft уволила лучших разработчиков
😎 Полезное:
• GoogleTest — полнофункциональный фреймворк для тестирования C++ кода от Google
• Системы сборки для C++ проектов
🖨️ Интересные проекты
• Catch2
Catch2 — фреймворк для модульного тестирования для C++, но он также предоставляет базовые функции микробенчмаркинга и простые макросы BDD.
• Windows Subsystem for Linux (WSL)
Подсистема Windows для Linux (WSL) — это эффективный способ запускать инструменты командной строки, утилиты и приложения Linux в Windows.
• TensorFlow
TensorFlow — открытая библиотека для машинного обучения, разработанная компанией Google.
• Zen Browser
Zen — это современный браузер основанный на движке Firefox.
Библиотека C/C++ разработчика #свежак
Недельный дайджест новостей о разных аспектах программирования и интересных проектах в мире C++.
🥳 Интересное:
• Язык программирования будущего
• Open Source и C++: делай что должен и свершится, чему суждено
• Microsoft уволила лучших разработчиков
😎 Полезное:
• GoogleTest — полнофункциональный фреймворк для тестирования C++ кода от Google
• Системы сборки для C++ проектов
🖨️ Интересные проекты
• Catch2
Catch2 — фреймворк для модульного тестирования для C++, но он также предоставляет базовые функции микробенчмаркинга и простые макросы BDD.
• Windows Subsystem for Linux (WSL)
Подсистема Windows для Linux (WSL) — это эффективный способ запускать инструменты командной строки, утилиты и приложения Linux в Windows.
• TensorFlow
TensorFlow — открытая библиотека для машинного обучения, разработанная компанией Google.
• Zen Browser
Zen — это современный браузер основанный на движке Firefox.
Библиотека C/C++ разработчика #свежак
Forwarded from Библиотека задач по C++ | тесты, код, задания
Forwarded from Библиотека задач по C++ | тесты, код, задания
Какое значение гарантированно вернет main()?
Anonymous Quiz
25%
Любое значение от 0 до 4000
47%
Всегда 4000
12%
Всегда меньше 4000
11%
Undefined behavior
5%
Ошибка компиляции
⌨️ Топ-вакансий для C++разработчиков за неделю
Ведущий системный программист С++ — от 350 000 ₽ Гибрид (Москва, Санкт-Петербург, Минск)
Разработчик C++ — до 220 000 ₽ Гибрид (Москва)
Разработчик C++ (Middle) — до 330 000 ₽ Удалёнка
Разработчик Windows Low Level C/C++ — от 280 000 до 380 000 ₽ Удалёнка
➡️ Еще больше топовых вакансий — в нашем канале C++ jobs
Библиотека C/C++ разработчика
Ведущий системный программист С++ — от 350 000 ₽ Гибрид (Москва, Санкт-Петербург, Минск)
Разработчик C++ — до 220 000 ₽ Гибрид (Москва)
Разработчик C++ (Middle) — до 330 000 ₽ Удалёнка
Разработчик Windows Low Level C/C++ — от 280 000 до 380 000 ₽ Удалёнка
➡️ Еще больше топовых вакансий — в нашем канале C++ jobs
Библиотека C/C++ разработчика
⚡️ ccache — компилятор кэш для ускорения пересборки проектов
Ждете по полчаса каждую пересборку большого проекта?
ccache кэширует результаты компиляции и переиспользует их при повторных сборках идентичных файлов. Может ускорить инкрементальные сборки в 5-10 раз, особенно эффективен в CI/CD пайплайнах.
👉 Установка:
💡 Примеры использования:
Дополнительные возможности:
— Настройка максимального размера кэша
— Статистика hit/miss ratio через ccache -s
— Поддержка удаленного кэша для команд
— Интеграция с CMake через CMAKE_CXX_COMPILER_LAUNCHER
👉 Сайт проекта
Библиотека C/C++ разработчика #свежак
Ждете по полчаса каждую пересборку большого проекта?
ccache кэширует результаты компиляции и переиспользует их при повторных сборках идентичных файлов. Может ускорить инкрементальные сборки в 5-10 раз, особенно эффективен в CI/CD пайплайнах.
👉 Установка:
# Ubuntu/Debian
sudo apt install ccache
# macOS
brew install ccache
💡 Примеры использования:
export CC="ccache gcc"
export CXX="ccache g++"
make -j$(nproc)
Дополнительные возможности:
— Настройка максимального размера кэша
— Статистика hit/miss ratio через ccache -s
— Поддержка удаленного кэша для команд
— Интеграция с CMake через CMAKE_CXX_COMPILER_LAUNCHER
👉 Сайт проекта
Библиотека C/C++ разработчика #свежак
🤯 Почему на собеседованиях в топовые компании проваливаются даже опытные разработчики
Проблема большинства программистов: вы отлично пишете код, знаете фреймворки и можете разобраться в любом проекте. Но когда интервьюер просит найти кратчайший путь в графе или отсортировать массив за O(n log n) — ступор.
Чтобы не теряться на базовых вопросах, приходите на курс «Алгоритмы и структуры данных».
Тем более, что мы дарим на него промокод PROGLIBAI на 10 000 ₽ в честь запуска другого курса — «AI-агенты для DS-специалистов».
🧐 Что будет на курсе по алгоритмам:
— Изучение производительности алгоритмов и O-нотации
— Числовые алгоритмы: от алгоритма Эвклида до решета Эратосфена
— Работа с массивами: от линейного поиска до оптимизации операций вставки/удаления
— Бинарный поиск и его применение в реальных задачах
— Практические задачи на каждую тему + обратная связь от преподавателей
После курса вы перестанете бояться алгоритмических секций на собеседованиях и сможете претендовать на позиции в топовых компаниях.
👉 Успейте использовать промокод до 1 июня: https://clc.to/590e_g
Проблема большинства программистов: вы отлично пишете код, знаете фреймворки и можете разобраться в любом проекте. Но когда интервьюер просит найти кратчайший путь в графе или отсортировать массив за O(n log n) — ступор.
Чтобы не теряться на базовых вопросах, приходите на курс «Алгоритмы и структуры данных».
Тем более, что мы дарим на него промокод PROGLIBAI на 10 000 ₽ в честь запуска другого курса — «AI-агенты для DS-специалистов».
🧐 Что будет на курсе по алгоритмам:
— Изучение производительности алгоритмов и O-нотации
— Числовые алгоритмы: от алгоритма Эвклида до решета Эратосфена
— Работа с массивами: от линейного поиска до оптимизации операций вставки/удаления
— Бинарный поиск и его применение в реальных задачах
— Практические задачи на каждую тему + обратная связь от преподавателей
После курса вы перестанете бояться алгоритмических секций на собеседованиях и сможете претендовать на позиции в топовых компаниях.
👉 Успейте использовать промокод до 1 июня: https://clc.to/590e_g
Как сделать код удобным для чтения и поддержки? Как стиль и форматирование могут улучшить командную работу?
⏺️ На открытом вебинаре мы подробно разберем, почему читаемость и поддерживаемость кода — важные элементы успешных проектов. Мы покажем, как правильное именование переменных, методов и классов помогает сделать код понятным для всей команды. Также мы объясним, как выравнивание, отступы и оформление скобок влияют на восприятие кода.
Вы научитесь:
▸ Настраивать автоматическое форматирование,
▸ Использовать линтеры и анализаторы,
▸ Внедрять Code Style соглашения в команде.
▸ Сократите время на ревью и отладку, повысив качество проектов!
Посетите открытый урок в преддверии старта курса «C++ Developer»!
🔴 Встречаемся 29 мая в 20:00 МСК.
Регистрация открыта: https://otus.ru/lessons/cpp-specialization/?utm_source=telegram&utm_medium=cpm&utm_campaign=spec-cplus&utm_term=cppproglib&utm_content=mql_lesson_29-05-2025_usp-cplus_cplus_aitext_no-headline_aida_short_aibanner_aibanner-hl2_white_standart&erid=2VtzqwBFYkd#event-5815
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
⏺️ На открытом вебинаре мы подробно разберем, почему читаемость и поддерживаемость кода — важные элементы успешных проектов. Мы покажем, как правильное именование переменных, методов и классов помогает сделать код понятным для всей команды. Также мы объясним, как выравнивание, отступы и оформление скобок влияют на восприятие кода.
Вы научитесь:
▸ Настраивать автоматическое форматирование,
▸ Использовать линтеры и анализаторы,
▸ Внедрять Code Style соглашения в команде.
▸ Сократите время на ревью и отладку, повысив качество проектов!
Посетите открытый урок в преддверии старта курса «C++ Developer»!
🔴 Встречаемся 29 мая в 20:00 МСК.
Регистрация открыта: https://otus.ru/lessons/cpp-specialization/?utm_source=telegram&utm_medium=cpm&utm_campaign=spec-cplus&utm_term=cppproglib&utm_content=mql_lesson_29-05-2025_usp-cplus_cplus_aitext_no-headline_aida_short_aibanner_aibanner-hl2_white_standart&erid=2VtzqwBFYkd#event-5815
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🚀 ТОП 10 трюков на C++, которые облегчат вам жизнь
Изучение C++ — это путешествие длиною в жизнь, полное подводных камней и неожиданных решений. Мы собрали практические советы, которые сделают ваш код более читаемым, оптимизированным и помогут вам выделиться на собеседованиях.
Несколько трюков кратко и наглядно оформили в виде карточек.
✅ Остальные трюки можно посмотреть в статье
Библиотека C/C++ разработчика
Изучение C++ — это путешествие длиною в жизнь, полное подводных камней и неожиданных решений. Мы собрали практические советы, которые сделают ваш код более читаемым, оптимизированным и помогут вам выделиться на собеседованиях.
Несколько трюков кратко и наглядно оформили в виде карточек.
✅ Остальные трюки можно посмотреть в статье
Библиотека C/C++ разработчика
Длинные функции — это код, который снижает читаемость и усложняет тестирование. Особенно актуально для C++, где функции могут быстро разрастаться из-за управления ресурсами и обработки ошибок.
Для того чтобы разделить свой код на функции используй следующий промпт:
Refactor the following code into multiple methods to improve readability and maintainability:
[Сюда вставь свой код]
До:
void processUserData(const std::vector<User>& users) {
// 50+ строк валидации, фильтрации,
// сортировки и сохранения
}
После:
void processUserData(const std::vector<User>& users) {
auto validUsers = validateUsers(users);
auto filteredUsers = filterActiveUsers(validUsers);
auto sortedUsers = sortUsersByPriority(filteredUsers);
saveUsersToDatabase(sortedUsers);
}
Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😱 Вся правда об увольнениях в IT в 2025-м
Пока все молчат о том, что происходит на рынке, мы решили выяснить реальную картину. Без прикрас и корпоративного пиара.
Но для этого нам нужна ваша помощь! Мы собираем данные от разработчиков, тестировщиков, менеджеров и всех, кто работает в ИТ, чтобы создать честное исследование о:
— реальных причинах массовых увольнений
— судьбе тех, кто остался за бортом IT-рынка
— том, сколько времени сейчас нужно на поиск работы
Почему это важно? Потому что сила в правде. Зная реальную ситуацию, вы сможете лучше понимать тренды рынка и планировать карьеру.
⚡️Пройдите опрос и помогите всему сообществу: https://clc.to/yJ5krg
Пока все молчат о том, что происходит на рынке, мы решили выяснить реальную картину. Без прикрас и корпоративного пиара.
Но для этого нам нужна ваша помощь! Мы собираем данные от разработчиков, тестировщиков, менеджеров и всех, кто работает в ИТ, чтобы создать честное исследование о:
— реальных причинах массовых увольнений
— судьбе тех, кто остался за бортом IT-рынка
— том, сколько времени сейчас нужно на поиск работы
Почему это важно? Потому что сила в правде. Зная реальную ситуацию, вы сможете лучше понимать тренды рынка и планировать карьеру.
⚡️Пройдите опрос и помогите всему сообществу: https://clc.to/yJ5krg
🔥 Сжатие ipv4 заголовков C++
💡 На Хабре вышла новая статья в которой автор делится своим опытом решения задачи сжатия
❗️ Ключевые моменты статьи:
• использование метода избыточности для отбрасывания идентичных данных в группах заголовков
• создание системы эталонных заголовков для восстановления сжатых пакетов
• достижение более 50% сжатия при сохранении полной функциональности
Основной фокус — практическая реализация компрессора/декомпрессора через tun интерфейс с детальным разбором алгоритма работы с первым полным пакетом и последующими сжатыми.
Особенно актуально для разработчиков, работающих с сетевыми протоколами в условиях ограниченной пропускной способности.
Вы узнаете, что даже стандартный 20-байтный IPv4 заголовок можно сократить до 9 байт без потери функциональности, используя умное кеширование эталонов.
👉 Статья
Библиотека C/C++ разработчика
💡 На Хабре вышла новая статья в которой автор делится своим опытом решения задачи сжатия
IPv4
заголовков в условиях спутниковой связи с нестабильной работой и ограниченной пропускной способностью.❗️ Ключевые моменты статьи:
• использование метода избыточности для отбрасывания идентичных данных в группах заголовков
• создание системы эталонных заголовков для восстановления сжатых пакетов
• достижение более 50% сжатия при сохранении полной функциональности
Основной фокус — практическая реализация компрессора/декомпрессора через tun интерфейс с детальным разбором алгоритма работы с первым полным пакетом и последующими сжатыми.
Особенно актуально для разработчиков, работающих с сетевыми протоколами в условиях ограниченной пропускной способности.
Вы узнаете, что даже стандартный 20-байтный IPv4 заголовок можно сократить до 9 байт без потери функциональности, используя умное кеширование эталонов.
👉 Статья
Библиотека C/C++ разработчика